#pragma once
#include "nodes\SpriteNode.h"
#include "addons\SpriteCounter.h"
#include <EventManager.h>
#include <nodes\PlainTextNode.h>

// -------------------------------------------------------------
//  HUD
// -------------------------------------------------------------
class HUD : public ds::SpriteNode , public ds::EventHandler {

public:
	HUD() : ds::SpriteNode("HUDSprites","TextureArrayMaterial",ds::SCM_MODULATE) , m_Level(5) , m_Timing(false) , m_TTL(5) , m_Timer(0) , m_Running(false) {
		gEngine->getEventManager().registerEventHandler(this);
	}
	~HUD() {}
	void init();
	void update(float elapsed);
	void reset() {
		m_Points = 0;
		m_Seconds = 0;
		m_Minutes = 0;
		if ( m_Timing ) {
			m_Seconds = m_TTL;
		}
		setScore(0);
	}
	void setScore(int value);
	void process(ds::EventBuffer& buffer);	
	void activate(bool timing);
	void deactivate();
	int getSeconds() {
		return m_Seconds;
	}
	int getMinutes() {
		return m_Minutes;
	}
private:	
	ds::PlainTextNode* m_TextNode;
	int m_PointsIdx;
	int m_TimerIdx;
	// scores
	int m_Points;
	int m_Level;
	ds::SHandle mouseSprite;	
	// basic
	int m_Seconds;
	int m_Minutes;
	int m_TTL;
	bool m_Timing;
	float m_Timer;
	bool m_Running;
};

